From: Carlos Garnacho Date: Wed, 18 Jan 2023 19:37:01 +0000 (+0100) Subject: gdk/x11: Emit "remove" s-n message from gdk_toplevel_set_startup_id X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~1^2~21^2~2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6ccd786a93a9309247abcdb3224cb874507d1a39;p=gtk%2B3.0.git gdk/x11: Emit "remove" s-n message from gdk_toplevel_set_startup_id In the way towards deprecating gdk_display_notify_startup_complete(), make gdk_toplevel_set_startup_id() on X11 perform this piece of messaging itself. It should be harmless that the message is emitted twice, if callers do still use that API. (cherry-picked from commit 7fab1b85adbddff7628e3e916f00677080fb9150) --- diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 194bc82e29..89f0666014 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -2901,6 +2901,7 @@ gdk_x11_window_set_startup_id (GdkWindow *window, const gchar *startup_id) { GdkDisplay *display; + gchar *free_this = NULL; g_return_if_fail (GDK_IS_WINDOW (window)); @@ -2918,6 +2919,23 @@ gdk_x11_window_set_startup_id (GdkWindow *window, else XDeleteProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (window), gdk_x11_get_xatom_by_name_for_display (display, "_NET_STARTUP_ID")); + + if (startup_id == NULL) + { + GdkX11Display *display_x11 = GDK_X11_DISPLAY (display); + + startup_id = free_this = display_x11->startup_notification_id; + display_x11->startup_notification_id = NULL; + + if (startup_id == NULL) + return; + } + + gdk_x11_display_broadcast_startup_message (display, "remove", + "ID", startup_id, + NULL); + + g_free (free_this); } static void